package com.inspur.dgov.bsp.user.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 用户信息
 *
 * @author chiyupei
 * @version 1.0
 * @since 1.0
 */
@Data
@TableName("pub_user")
@ApiModel(value="PubUser对象", description="用户信息")
public class PubUser implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "用户ID")
    @TableId("ID")
    private Long id;

    @ApiModelProperty(value = "账号")
    @TableField("ACCOUNT")
    private String account;

    @ApiModelProperty(value = "密码")
    @TableField("PASSWORD")
    private String password;

    @ApiModelProperty(value = "姓名")
    @TableField("NAME")
    private String name;

    @ApiModelProperty(value = "手机号")
    @TableField("MOBILE")
    private String mobile;

    @ApiModelProperty(value = "邮箱")
    @TableField("EMAIL")
    private String email;

    @ApiModelProperty(value = "身份证号")
    @TableField("CARD_NO")
    private String cardNo;

    @ApiModelProperty(value = "昵称")
    @TableField("NICK_NAME")
    private String nickName;

    @ApiModelProperty(value = "认证状态(0:未认证 1:已认证)")
    @TableField("AUTH_LEVEL")
    private String authLevel;

    @ApiModelProperty(value = "性别(1男 0女)")
    @TableField("GENDER")
    private String gender;

    @ApiModelProperty(value = "民族(见国标GB3304-91)")
    @TableField("NATION")
    private String nation;

    @ApiModelProperty(value = "出生日期")
    @TableField("BIRTHDAY")
    private String birthday;

    @ApiModelProperty(value = "排序")
    @TableField("SORT_ORDER")
    private Integer sortOrder;

    @ApiModelProperty(value = "是否超级管理员(0不是 1是)")
    @TableField("IS_ADMIN")
    private String isAdmin;

    @ApiModelProperty(value = "职称")
    @TableField("PROFESSIONAL")
    private String professional;

    @ApiModelProperty(value = "职务")
    @TableField("POSITION")
    private String position;

    @ApiModelProperty(value = "是否接收手机短信(1是 0否)")
    @TableField("IS_RECEIVE_SMS")
    private String isReceiveSms;

    @ApiModelProperty(value = "所属区划ID")
    @TableField("REGION_ID")
    private Long regionId;

    @ApiModelProperty(value = "所属区划名称(冗余)")
    @TableField("REGION_NAME")
    private String regionName;

    @ApiModelProperty(value = "所属组织ID")
    @TableField("ORGAN_ID")
    private Long organId;

    @ApiModelProperty(value = "所属组织名称(冗余)")
    @TableField("ORGAN_NAME")
    private String organName;

    @ApiModelProperty(value = "直属组织ID")
    @TableField("DIRECT_ORGAN_ID")
    private Long directOrganId;

    @ApiModelProperty(value = "直属组织名称(冗余)")
    @TableField("DIRECT_ORGAN_NAME")
    private String directOrganName;

    @ApiModelProperty(value = "所属组织ID路径")
    @TableField("ORGAN_ID_PATH")
    private String organIdPath;

    @ApiModelProperty(value = "所属组织名称路径(冗余)")
    @TableField("ORGAN_NAME_PATH")
    private String organNamePath;

    @ApiModelProperty(value = "上级ID")
    @TableField("PARENT_ID")
    private Long parentId;

    @ApiModelProperty(value = "状态(1:有效 0:无效)")
    @TableField("STATUS")
    private String status;

    @ApiModelProperty(value = "租户ID")
    @TableField("TENANT_ID")
    private Long tenantId;

    @ApiModelProperty(value = "用户说明")
    @TableField("REMARK")
    private String remark;

    @ApiModelProperty(value = "创建者ID")
    @TableField("CREATOR")
    private Long creator;

    @ApiModelProperty(value = "创建时间")
    @TableField("CREATE_TIME")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @ApiModelProperty(value = "更新者ID")
    @TableField("UPDATOR")
    private Long updator;

    @ApiModelProperty(value = "更新时间")
    @TableField("UPDATE_TIME")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}
